
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;

public class ZhihuPageProcessor implements PageProcessor {
    private Site site = Site.me().setRetryTimes(3).setSleepTime(1000);

    public ZhihuPageProcessor() {
    }

    public void process(Page page) {
        page.addTargetRequests(page.getHtml().links().regex("https://www\\.zhihu\\.com/question/\\d+/answer/\\d+.*").all());
        page.putField("title", page.getHtml().xpath("//h2[@class=\'zm-item-title\']/a/text()").toString());
        page.putField("question", page.getHtml().xpath("//*[@id=\"js-explore-tab\"]/div[1]/div/div[0]/h2/a//tidyText()").toString());
        page.putField("answer", page.getHtml().xpath("//div[@id=\'zh-question-answer-wrap\']//div[@class=\'zm-editable-content\']/tidyText()").toString());
        if(page.getResultItems().get("title") == null) {
            page.setSkip(true);
        }
        System.out.println(page.getResultItems().get("question"));

    }

    public Site getSite() {
        return this.site;
    }

    public static void main(String[] args) {
        Spider.create(new ZhihuPageProcessor()).addUrl(new String[]{"https://www.zhihu.com/explore"}).run();
    }
}
